217
22365
所以我在弄清楚list :: sort()关于结构列表的正确使用时遇到了一些麻烦。以下是相关代码:
结构学生
{
char firstnm [20],
lastnm [20];
整数ID,
年级;
};
list  sList;
//不正确的代码...
cout <<“,请输入您自己的姓名,身份证和等级。(例如:myfirst mylast 0 12)\ n”;
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back(data);
sList.sort();
我想解决的问题是使用sList.sort()按ID排序。但是,我不知道如何正确地将其传递给list :: sort()。在此先感谢您的帮助/时间!
编辑:解决方案只是将其添加到我的结构
布尔运算符<(const student&cmp)const {
返回id 
                                
您应该看一下std :: sort。 (https://zh-cn.cppreference.com/w/cpp/algorithm/sort)该函数有多种定义,您可以在其中定义要排序的内容。
另外,看看那个帖子,我认为这是您需要的:https://stackoverflow.com/a/21234017/6663947
编辑:
多数民众赞成在比较例:
sList.sort([](const student&a,const student&b){return a.id 
无效排序(比较比较);
假设您要根据键ID升序对列表中的学生对象进行排序。您可以为用户定义的学生班级定义operator <,方法是:
bool运算符<((学生const&a,学生const&b){
返回a.id